import pandas as pd
import xlrd


def read_data(raw_file):
    """
    进行数据的读取
    :param raw_file: 输入数据的位置
    :return: 位置所对应的数据
    """

    content = xlrd.open_workbook(filename=raw_file, encoding_override='utf-8')

    coal_and_charge_data = pd.read_excel(content,engine='xlrd')

    return coal_and_charge_data


def obtain_split_data(coal_data):
    """
    将数据集按照偶数进行切分（不确定原始包含几个给煤机及对应的负荷量）
    :param coal_data: 原始数据集
    :return: 用字典存储每个切分的dataframe
    """

    data_list={}
    columns=list(coal_data.columns)
    if not "数据类型" in columns:
        raise IndexError("file have no coal and charge")
    elif len(columns)%2 !=0:
        raise ValueError("data contain missing value: coal or charge")
    else:
        print("数据中显示该电厂一共有{value}台给煤机进行工作".format(value=int(((len(columns)-2)/4))))
        if not "电厂编号" in columns:
            raise IndexError("file have no charge number")
        else:
            distinct_data=list(set(coal_data["电厂编号"].values.tolist()))
            if not len(distinct_data)==1:
                raise ValueError("dataset includes multiple power plants")
            else:
                coal_no_number_data=coal_data.drop('电厂编号', axis=1)
                coal_charge_data=coal_no_number_data.set_index(["时间标签"],drop=True)
                #print(coal_charge_data.shape)
                columns_use = list(coal_charge_data.columns)
                for i in range(0,len(columns_use),2):
                    data_list[i]=coal_charge_data.iloc[:,[i,i+1]]

    return data_list


def read_available_data(raw_file):
    """
    读取可用天数数据，并进行简单的预处理
    :param raw_file: 可用天数数据地址
    :return: 简单预处理过后的数据
    """
    data=pd.read_excel(raw_file)
    coal_no_data = data.drop(['电厂编号','发电量（万千瓦时）'], axis=1)

    available_data = coal_no_data.set_index(["时间标签"], drop=True)

    return available_data








